In a communication system, the data to be transmitted is typically broken into symbols and each symbol is combined with additional information (such as parity bits) to form a code word. The process of transforming original data sequences into structured sequences better suited to transmission is called channel coding. The information in the code word is used for error checking and, sometimes, for error correction. The resulting sequence of code words is transmitted over an analog communication channel to a receiver, where an attempt is made to recover the original data symbols from the code words in a decoder. In the simplest decoders, the additional information is used to decide of the decode data is correct or not, and may be used to request that the data be resent if incorrect. More sophisticated communication systems use Forward Error Correction (FEC), where the additional information in the code word is used in an attempt to correct errors in the decoded data symbols.
A simple method for reducing bit errors in a communication system to increase the analog signal level. However, while higher signal levels are more robust to noise interference, the use of higher gain increases the power consumption of the system. Consequently, communication systems often incorporate an automatic gain control (AGC) circuit. The purpose of the AGC circuit is control the level of the analog signals in the transmitter or receiver of the communication system. A typical AGC circuit monitors a property of the analog signal after gain has been applied in amplifier and adjusts the gain based upon a predetermined criterion. For example, the power of the signal or the envelope of the signal may be monitored. One problem with this approach is that the AGC system itself also consumes power. A further disadvantage is the need for circuitry to measure the power or envelope of the amplified signal.